export const getInputs = () => [[[5, 5, 5, 10, 20]], [[5, 5, 10, 10, 20]]];

/**
 * **[860. 柠檬水找零](https://leetcode.cn/problems/lemonade-change/)**
 *
 * 在柠檬水摊上，每一杯柠檬水的售价为 `5` 美元。顾客排队购买你的产品，（按账单 `bills` 支付的顺序）一次购买一杯。
 *
 * 每位顾客只买一杯柠檬水，然后向你付 `5` 美元、`10` 美元或 `20` 美元。你必须给每个顾客正确找零，也就是说净交易是每位顾客向你支付 `5` 美元。
 *
 * 注意，一开始你手头没有任何零钱。
 *
 * 给你一个整数数组 `bills` ，其中 `bills[i]` 是第 `i` 位顾客付的账。如果你能给每位顾客正确找零，返回 `true` ，否则返回 `false` 。
 *
 * @param bills
 * @returns
 */
export default function (bills: number[]): boolean {
	const myCash = [0, 0]; // 5, 10
	for (const bill of bills) {
		const charge = bill - 5;
		switch (charge) {
			case 15:
				if (!myCash[1]) {
					if (myCash[0] < 3) return false;
					myCash[0] -= 3;
				} else {
					if (!myCash[0]) return false;
					myCash[1]--;
					myCash[0]--;
				}
				break;
			case 5:
				if (!myCash[0]) return false;
				myCash[1]++;
				myCash[0]--;
				break;
			case 0:
				myCash[0]++;
				break;
		}
	}
	return true;
}
